package com.antstorm.statistics.dao;

import com.antstorm.statistics.entity.OnlineDurationTimeStream;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

@Repository
public interface OnlineDurationTimeStreamDao extends JpaRepository<OnlineDurationTimeStream,Long> {

    /**
     * 统计每日在线时长的stream中插入数据 .
     *  注意： 使用原生sql语句进行 更新/新增/删除 等操作需要添加事务控制, 使用 注解 @Transactional ，@Modifying
     * @param deviceId  设备id
     * @param date      在线日期，格式:yyyy-mm-dd
     * @param duration  在线时长，单位：秒
     */
    @Transactional
    @Modifying
    @Query(value = "insert into stream_of_device_online(deviceId,duration,date) values(?1,?2,?3); ",nativeQuery = true)
    int insertIntoStream(String deviceId, Long duration ,String date);


}
